package com.itheima.lambda.practice01;

public class AddableDemo {
    /*
    - 定义一个接口(Addable)，里面定义一个抽象方法：int add(int x,int y);
- 定义一个测试类(AddableDemo)，在测试类中提供两个方法
  - 一个方法是：useAddable(Addable a)
  - 一个方法是主方法，在主方法中调用useAddable方法
     */
    public static void main(String[] args) {
        useAddable(new Addable() {
            @Override
            public int add(int x, int y) {
                return x+y;
            }
        });
        useAddable((int x, int y)->{
            return x+y;
        });
         /*
        省略
            参数类型可以省略。但是有多个参数的情况下，不能只省略一个
            如果参数有且仅有一个，那么小括号可以省略
            如果代码块的语句只有一条，可以省略大括号和分号，和return关键字
         */
        useAddable(( x,  y)-> x+y);
    }
    public static void useAddable(Addable a){

        System.out.println(a.add(10,20));
    }
}

interface Addable{
    int add(int x,int y);
}